本发明公开了一种机会网络下的基于分层地理标签的路由方法,包括:对网络区域按照地理位置进行划分,以生成多个子区域,对每个子区域标记代表其地理位置的标签向量,对于网络中的每个节点,根据子区域和代表其地理位置的标签向量创建并维护记录该节点访问子区域以及各子区域访问概率的标签集,以及该节点的归属子区域列表,该归属子区域列表用于记录网络中各节点所归属的子区域,节点根据标签集以及该节点的归属子区域列表与通信范围内的另一个节点进行消息路由,该另一个节点称为相遇节点。本发明将消息转发给与目的节点具有更加类似的访问习惯的节点,从而增加消息的递交成功率并且提高路由效率,同时降低了网络中过多的消息副本造成的开销。
1.一种机会网络下基于分层地理标签的路由方法,其特征在于,包括以下步骤:(1)对网络区域按照地理位置进行划分,以生成多个子区域,对每个子区域标记代表其地理位置的标签向量,具体为,整个网络区域被按照地理位置进行逐层划分,每次划分都对生成的子区域打上不同的层次标签,每个子区域都被标记上了层次的代表其地理位置的地理标签,这些地理标签组合成代表各子区域的标签向量,标签向量的形式是<tag
1,tag
2,tag
3...tag
n>,最左端的tag
1是最顶层的子区域的地理标签,向右是逐渐细化的子区域的地理标签,最右端的tag
n是最底层的子区域的地理标签,标签向量代表了子区域所在的位置:(2)对于网络中的每个节点,根据子区域和代表其地理位置的标签向量创建并维护记录该节点访问子区域以及各子区域访问概率的标签集,以及该节点的归属子区域列表,该归属子区域列表用于记录网络中各节点所归属的子区域,具体而言,本步骤包括以下子步骤:(2.1)每隔时间间隔ΔT
1,节点根据自身位置判断当前所在的最底层子区域,并将标签集中该子区域的标签访问量n加1,n为正整数,标签访问量反映了节点访问该子区域的频繁程度;(2.2)每隔时间间隔ΔT
2,根据以下等式对标签访问量n进行优化:n=Δn+n"γ
kxa0xa0xa0xa0(1)其中γ为衰减因子,其取值范围为0到1,Δn是从上个时间间隔到当前时刻所新增的标签访问量,n′是截止到上个时间间隔的访问量,k是从上个时间间隔到当前时刻的单元时间间隔的数量;(2.3)根据以下等式获取节点标签集中每个最底层子区域h的访问概率P
h;
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>其中n
h、n
i和n
j分别表示子区域h、i和j的标签访问量,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="103"/>是节点标签集记录的节点经过的所有子区域t所包含的访问量之和,对于不能再被细分的最底层区域,n
h是该子区域的标签访问量;对于一个能被细分为若干子区域的父区域,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="111"/>是其所有子区域的标签访问量之和;(2.4)节点将访问概率P
h最大的最底层子区域h设为该节点的归属子区域,并将该归属子区域记录到节点的归属子区域列表中,若归属子区域发生了改变,则需要同时更新归属子区域发生改变的时间;(3)节点根据标签集以及该节点的归属子区域列表与通信范围内的另一个节点进行消息路由,该另一个节点称为相遇节点;本步骤包括以下子步骤:(3.1)两节点将各自的归属子区域列表发给对方,并根据对方的归属子区域列表更新自身的归属子区域列表;具体而言,更新过程中,当二者的归属子区域列表中同一节点的归属子区域不同时,以最近的发生改变的时间为准;(3.2)节点将存储的消息中以相遇节点为目的节点的消息发送给相遇节点;(3.3)节点检查存储的消息中剩下消息的目的节点,找到以节点当前所在最底层子区域为归属子区域的目的节点,并将需要发送到这些目的节点的信息发送到相遇节点;(3.4)节点对于存储的消息中剩下的所有消息,建立一张记录其目的节点的列表并发送给相遇节点;(3.5)相遇节点接收到该列表后,对列表中的每个目的节点d,计算其归属子区域的标签向量V
d和相遇节点的标签集S
b的相似度S(s
b,v
d)以及标签集S
b和标签向量V
d的交集所表示的区域的访问概率P
b,对应填入节点发来的列表再发回给节点,同时,对于列表中的每一项,节点计算其归属子区域的标签向量V
d和节点的标签集S
a的相似度S(s
a,v
d)以及标签集S
a和标签向量V
d的交集所表示的区域的访问概率P
a,其中标签相似度S(s
m,v
h)为:
S ( Sm , Vh ) = S m ∩ V h h max - - - ( 3 ) ]]>其中S
m∩V
h表示将节点m的标签集S
m与归属子区域h的标签向量V
h取交集,以得到归属子区域二者共有部分的标签个数,h
max是网络区域被划分的总层数;(3.6)在节点收到相遇节点发回的列表后,对于列表中的每一个目的节点d,分别比较S(s
a,v
d)、S(s
b,v
d)和P
a、P
b,仅在S(s
b,v
d)>S(s
a,v
d)或S(s
b,v
d)=S(s
a,v
d)且P
b>P
a的情况下,节点将以目的节点d为目的节点的消息发送给相遇节点;(3.7)相遇节点执行与上述节点对应的操作,由此完成向节点的消息传输。
2.根据权利要求1所述的路由方法,其特征在于,节点是移动终端,包括手机、蓝牙设备和无线传感器。
3.根据权利要求1所述的路由方法,其特征在于,ΔT
1为1分钟到10分钟之间,ΔT
2为1分钟到10分钟之间,且大于ΔT
1。
技术领域本发明属于计算机网络通信领域,更具体地,涉及一种机会网络下基于分层地理标签的路由方法。
背景技术机会网络是一种延时容忍网络,由移动的对等通信节点组成,主要特点是网络拓扑被分割成多个孤立的连通区域,因此在进行消息传输时,源节点和目的节点之间往往不存在持续的端到端路径。节点拥有非易失性存储,在进行消息传输时,采用“存储-携带-转发”的传输方式,利用节点移动形成的相遇机会完成数据的传输,直到消息被转发到目的节点。机会网络有许多典型的应用场景,如战场军事网络,自组织车载网络,口袋交换网络等。由于机会网络自身的特点违反了TCP/IP协议的一些假设,包括:收发节点之间需要存在持续的端到端路径,任意收发节点之间的RTT较小而且相对一致,丢包率较低等,所以TCP/IP协议无法在机会网络下很好地工作。如何在链路频繁中断,网络拓扑不断变化的条件下实现源节点到目的节点的路由技术一直是机会网络的研究热点。目前的路由技术主要分为两种,一种是基于复制的传输策略,利用同一份消息在网络中散布多个拷贝的方法来增大传输成功率,但是会给网络带来较大的负载上的负担。另一种是基于效用的传输策略,利用节点记录和收集的网络信息来预测节点相遇的可能性,当进行数据传输时将消息转发给有更大概率遇到目的节点的移动节点,但这类方法的传输成功率相对较低。
发明内容针对现有技术的缺陷,本发明的目的在于提供一种机会网络下基于分层地理标签的路由方法,旨在解决现有方法中网络负载高、传输成功率低的问题。为实现上述目的,本发明提供了一种机会网络下基于分层地理标签的路由方法,包括以下步骤:(1)对网络区域按照地理位置进行划分,以生成多个子区域,对每个子区域标记代表其地理位置的标签向量:(2)对于网络中的每个节点,根据子区域和代表其地理位置的标签向量创建并维护记录该节点访问子区域以及各子区域访问概率的标签集,以及该节点的归属子区域列表,该归属子区域列表用于记录网络中各节点所归属的子区域,具体而言,本步骤包括以下子步骤:(2.1)每隔时间间隔ΔT
1,节点根据自身位置判断当前所在的最底层子区域,并将标签集中该子区域的标签访问量n加1,n为正整数,标签访问量反映了节点访问该子区域的频繁程度;(2.2)每隔时间间隔ΔT
2,根据以下等式对标签访问量n进行优化:n=Δn+n"γ
kxa0xa0xa0xa0(1)其中γ为衰减因子,其取值范围为0到1,Δn是从上个时间间隔到当前时刻所新增的标签访问量,n′是截止到上个时间间隔的访问量,k是从上个时间间隔到当前时刻的单元时间间隔的数量;(2.3)根据以下等式获取节点标签集中每个最底层子区域h的访问概率P
h;
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>其中n
h、n
i和n
j分别表示子区域h、i和j的标签访问量,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="92"/>是节点标签集记录的节点经过的所有子区域t所包含的访问量之和,对于不能再被细分的最底层区域,n
h是该子区域的标签访问量;对于一个能被细分为若干子区域的父区域,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="91"/>是其所有子区域的标签访问量之和;(2.4)节点将访问概率P
h最大的最底层子区域h设为该节点的归属子区域,并将该归属子区域记录到节点的归属子区域列表中,若归属子区域发生了改变,则需要同时更新归属子区域发生改变的时间;(3)节点根据标签集以及该节点的归属子区域列表与通信范围内的另一个节点进行消息路由,该另一个节点称为相遇节点;本步骤包括以下子步骤:(3.1)两节点将各自的归属子区域列表发给对方,并根据对方的归属子区域列表更新自身的归属子区域列表;具体而言,更新过程中,当二者的归属子区域列表中同一节点的归属子区域不同时,以最近的发生改变的时间为准;(3.2)节点将存储的消息中以相遇节点为目的节点的消息发送给相遇节点;(3.3)节点检查存储的消息中剩下消息的目的节点,找到以节点当前所在最底层子区域为归属子区域的目的节点,并将需要发送到这些目的节点的信息发送到相遇节点;(3.4)节点对于存储的消息中剩下的所有消息,建立一张记录其目的节点的列表并发送给相遇节点;(3.5)相遇节点接收到该列表后,对列表中的每个目的节点d,计算其归属子区域的标签向量V
d和相遇节点的标签集S
b的相似度S(s
b,v
d)以及标签集S
b和标签向量V
d的交集所表示的区域的访问概率P
b,对应填入节点发来的列表再发回给节点,同时,对于列表中的每一项,节点计算其归属子区域的标签向量V
d和节点的标签集S
a的相似度S(s
a,v
d)以及标签集S
a和标签向量V
d的交集所表示的区域的访问概率P
a;(3.6)在节点收到相遇节点发回的列表后,对于列表中的每一个目的节点d,分别比较S(s
a,v
d)、S(s
b,v
d)和P
a、P
b,仅在S(s
b,v
d)>S(s
a,v
d)或S(s
b,v
d)=S(s
a,v
d)且P
b>P
a的情况下,节点将以目的节点d为目的节点的消息发送给相遇节点;(3.7)相遇节点执行与上述节点对应的操作,由此完成向节点的消息传输。步骤(1)具体为:整个网络区域被按照地理位置进行逐层划分,每次划分都对生成的子区域打上不同的层次标签,每个子区域都被标记上了层次的代表其地理位置的地理标签,这些地理标签组合成代表各子区域的标签向量,标签向量的形式是<tag
1,tag
2,tag
3...tag
n>,最左端的tag
1是最顶层的子区域的地理标签,向右是逐渐细化的子区域的地理标签,最右端的tag
n是最底层的子区域的地理标签,标签向量代表了子区域所在的位置。节点是移动终端,包括手机、蓝牙设备和无线传感器。ΔT
1为1分钟到10分钟之间,ΔT
2为1分钟到10分钟之间,且大于ΔT
1。标签相似度S(s
m,v
h)为:
S ( Sm , Vh ) = S m ∩ V h h max - - - ( 3 ) ]]>其中S
m∩V
h表示将节点m的标签集S
m与归属子区域h的标签向量V
h取交集,以得到归属子区域二者共有部分的标签个数,h
max是网络区域被划分的总层数。通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:1、本发明结合了地理位置辅助的转发和基于节点相遇的路由模式,通过将消息传输到具有更高递交概率的区域来加速消息的递交过程。2、在进行转发决策时,使用节点的地理标签相似度和相应的标签访问概率作为主要依据,将消息转发给与目的节点具有更加类似的访问习惯的节点,从而增加消息的递交成功率并且提高路由效率。3、与现有技术相比,本发明提高了消息递交率,同时降低了网络中过多的消息副本造成的开销。
附图说明图1是本发明机会网络下基于分层地理标签的路由方法的流程图。图2是网络区域的划分示意图。图3是标签树的示意图。图4是本发明方法中步骤(3)的细化流程图。图5是仿真实验中递交率随节点存储量的变化情况。图6是仿真实验中网络开销随节点存储量的变化情况。
具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。在大部分机会网络的实际应用中,对于网络中的不同地区,节点的访问频率和访问时间往往存在差异,常常出现节点对于某些特定地区的访问频率远远高于其他地区的情况。例如在监测野外动物的无线传感器网络中,传感器节点的运动规律依赖携带它的动物,而动物大部分时间都会待在其巢穴所在的区域。Balazinska等人在他们对一个典型的校园无线网络样本的研究中发现50%的用户花费了他们74%的时间待在同一个区域。因此对于一个待传输消息,如果我们将它传输到这样的区域,将会大大增加消息被成功递交的概率。我们称这样的区域为节点的归属区域。对于一条待传输的消息,我们试图将它传输到目的节点的归属子区域,从而提高消息被成功递交的概率。为了将消息传输到这样的区域,需要经过其他节点的中继转发。一个良好的中继节点,对于网络区域的访问习惯应该与目的节点有较高的相似程度,这样,中继节点将有较大的概率遇到目的节点,从而完成消息的传递。如图所示,本发明机会网络下基于分层地理标签的路由方法包括以下步骤:(1)对网络区域按照地理位置进行划分,以生成多个子区域,对每个子区域标记代表其地理位置的标签向量:具体而言,整个网络区域被按照地理位置进行逐层划分,每次划分都对生成的子区域打上不同的层次标签,这样在逐层划分结束时,整个网络区域被细分为许多小的子区域,每个子区域都被标记上了层次的代表其地理位置的地理标签,这些地理标签组合成代表各子区域的标签向量(tagxa0vector)。标签向量的形式是<tag
1,tag
2,tag
3...tag
n>,最左端的tag
1是最顶层的子区域的地理标签,向右是逐渐细化的子区域的地理标签,最右端的tag
n是最底层的子区域的地理标签,标签向量代表了这个子区域所在的位置。举例而言,对于如图2所示的网络覆盖区域,记整个网络区域的标签为A
1,第一次划分,将A
1区域划分为i个子区域,子标签分别为B
1到B
i,其中i为大于等于2的正整数,则每个子区域的地理标签分别为<A
1,B
1>,<A
1,B
2>...<A
1,B
i>。第二次划分,对每个二级子区域B
i进行划分,子标签分别为C
1到C
j,其中j为大于等于2的正整数,以子区域B
1为例,每个三级子区域的地理标签分别为<A
1,B
1,C
1>,<A
1,B
1,C
2>...<A
1,B
1,C
j>。依此规则逐层划分,直到进行了指定的层数为止。以一个进行了2层划分,每层划分都将子区域分成4个更小的子区域的划分过程为例,最底层子区域的标签形式如下:<A
1,B
i,C
j>。在实际应用中进行区域划分时,不同父区域包含的子区域数量可以不同。在不同父区域下,子区域部分的地理标签可以相同,这种情况类似于文件系统的目录树,在不同目录下,可以存在同名子目录。地理标签可以被赋予更加具有直观意义的名称,如<武汉市,洪山区,花山镇>。(2)对于网络中的每个节点,根据子区域和代表其地理位置的标签向量创建并维护记录该节点访问子区域以及各子区域访问概率的标签集(tagxa0set),以及该节点的归属子区域列表(homexa0locationxa0table),该归属子区域列表用于记录该节点所归属的子区域。通过标签集,我们可以获得该节点的访问习惯,我们将节点访问最多的子区域设为该节点的归属子区域,并记录到归属子区域列表中,在与其他节点通信时首先交换归属子区域列表中的信息,将自己的归属子区域信息扩散到整个网络。在本发明中,节点是移动终端,诸如手机、蓝牙设备、无线传感器等。具体而言,本步骤包括以下子步骤:(2.1)每隔时间间隔ΔT
1,节点根据自身位置判断当前所在的最底层子区域,并将标签集中该子区域的标签访问量n加1,其中ΔT
1通常取值在1分钟到10分钟之间。n为正整数,标签访问量反映了节点访问该子区域的频繁程度。若节点是第一次来到该子区域,则先将该子区域的标签向量加入到该节点的标签集的树状数据结构中,再将该标签的标签访问量n加1。(2.2)对标签访问量n进行优化;具体而言,考虑到新近获得的信息相比陈旧的数据反映出的节点运动规律更为准确,每经过时间间隔ΔT
2,通过以下公式(1)计算标签当前的访问量n:n=Δn+n"γ
kxa0xa0(1)其中ΔT
2通常取值在1分钟到10分钟之间,且大于ΔT
1,γ为衰减因子,其取值范围为0到1,Δn是从上个时间间隔到当前时刻所新增的标签访问量,n′是截止到上个时间间隔的访问量,k是从上个时间间隔到当前时刻的单元时间间隔的数量。(2.3)获取节点标签集中每个最底层子区域h的访问概率P
h;具体而言,标签向量为V
h的子区域h的访问概率P
h定义如下:
![]()
ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/>其中n
h、n
i和n
j分别表示子区域h、i和j的标签访问量,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="92"/>是节点标签集记录的节点经过的所有子区域t所包含的访问量之和,对于不能再被细分的最底层区域,n
h是该子区域的标签访问量;对于一个能被细分为若干子区域的父区域,
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="92"/>是其所有子区域的标签访问量之和。节点标签集中某个标签向量有一个较高的访问概率,直接反映了有很大几率能在该标签向量代表的子区域找到该节点。(2.4)节点将访问概率P
h最大的最底层子区域h设为该节点的归属子区域,并将该归属子区域记录到节点的归属子区域列表中,若归属子区域发生了改变,则需要同时更新归属子区域发生改变的时间。随着节点途经不同的子区域,节点的标签集逐渐形成一棵标签树。如图3所示,该节点的活动范围包括6个子区域,每个子区域出现的概率都不同,其中该节点在子区域<A
1,B
1,C
3>出现的概率P最大,为0.408,所以该子区域被设为该节点的归属子区域。经过足够长的时间后,节点的标签集可以较准确地反映节点运动的规律,如该节点在哪些区域出现过,在各区域出现的概率分别是多少等,反映出节点在访问地点上的偏好。(3)节点根据标签集以及该节点的归属子区域列表与通信范围内的另一个节点进行消息路由,该另一个节点称为相遇节点;通过将节点m的标签集S
m与待传递消息的目的节点的归属子区域h的标签向量V
h进行比较,我们定义标签相似度S(s
m,v
h)为:
S ( Sm , Vh ) = S m ∩ V h h max - - - ( 3 ) ]]>其中S
m∩V
h表示将节点m的标签集S
m与归属子区域h的标签向量V
h取交集,以得到归属子区域二者共有部分的标签个数,h
max是网络区域被划分的总层数。标签相似度被用来度量遇到的节点是否是一个更好的转发中继节点。若一个节点A的标签集与某目的节点D归属子区域的标签向量相似度很低,说明节点A的活动区域和D的归属子区域距离较远,节点A遇到目的节点D的概率较小;反之若节点A的标签集和消息目的节点D归属子区域的标签向量相似度很高,则说明D的区域就在节点A的活动范围内或活动范围附近,节点A有相对高的概率遇到目的节点D,把消息转发给节点A更有助于完成消息的传输。如图4所示,本步骤包括以下子步骤:(3.1)两节点将各自的归属子区域列表发给对方,并根据对方的归属子区域列表更新自身的归属子区域列表;具体而言,更新过程中,当二者的归属子区域列表中同一节点的归属子区域不同时,以最近的发生改变的时间为准;(3.2)节点将存储的消息中以相遇节点为目的节点的消息发送给相遇节点;(3.3)节点检查存储的消息中剩下消息的目的节点,找到以节点当前所在最底层子区域为归属子区域的目的节点,并将需要发送到这些目的节点的信息发送到相遇节点;(3.4)节点对于存储的消息中剩下的所有消息,建立一张记录其目的节点的列表并发送给相遇节点;(3.5)相遇节点接收到该列表后,对列表中的每个目的节点d,计算其归属子区域的标签向量V
d和相遇节点的标签集S
b的相似度S(s
b,v
d)以及标签集S
b和标签向量V
d的交集所表示的区域的访问概率P
b,对应填入节点发来的列表再发回给节点,同时,对于列表中的每一项,节点计算其归属子区域的标签向量V
d和节点的标签集S
a的相似度S(s
a,v
d)以及标签集S
a和标签向量V
d的交集所表示的区域的访问概率P
a;(3.6)在节点收到相遇节点发回的列表后,对于列表中的每一个目的节点d,分别比较S(s
a,v
d)、S(s
b,v
d)和P
a、P
b,仅在S(s
b,v
d)>S(s
a,v
d)或S(s
b,v
d)=S(s
a,v
d)且P
b>P
a的情况下,节点将以目的节点d为目的节点的消息发送给相遇节点;(3.7)相遇节点执行与上述节点对应的操作,由此完成向节点的消息传输。在图4和图5中,本专利的方法简称为HGTR路由方式,在仿真实验中共递交75%的消息,与prophet协议相比,HGTR路由方式多递交了24%的消息,与MaxProp协议相比,多递交了15%的消息。从造成的开销上看,HGTR协议表现优于Epidemic协议和MaxProp协议,与MaxProp协议相比,论文提出的HGTR方法的开销减少了26%。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。